/// \file
/// \author Martin Dubcovsky
/// Use double dispath to figure out if 

///

#ifndef GRAPHICS_BOUNDING_VOLUME_H
#define GRAPHICS_BOUNDING_VOLUME_H

namespace graphics {

class AxisAlignedBoundingBox;
class OrientedBoundingBox;
class BoundingSphere;

class BoundingVolume {
public:
    virtual bool Overlaps(const BoundingVolume * other) const = 0;
    virtual bool OverlapWith(const BoundingSphere * other) const        = 0 ;
    virtual bool OverlapWith(const AxisAlignedBoundingBox * other) const        = 0;
    virtual bool OverlapWith(const OrientedBoundingBox *other) const = 0;   

    static float kOverlapTolerance;
};

} //namespace graphics


#endif 